// export SoldLevel , EngLevel , MechLevel , SciLevel , Ru_Attack ; starting begin Ru_Attack = 0 ;
   0: LD_ADDR_EXP 5
   4: PUSH
   5: LD_INT 0
   7: ST_TO_ADDR
// disable ( 101 ) ;
   8: LD_INT 101
  10: DISABLE_MARKED
// disable ( 100 ) ;
  11: LD_INT 100
  13: DISABLE_MARKED
// disable ( 110 ) ;
  14: LD_INT 110
  16: DISABLE_MARKED
// disable ( 120 ) ;
  17: LD_INT 120
  19: DISABLE_MARKED
// Center = 1 ;
  20: LD_ADDR_EXP 14
  24: PUSH
  25: LD_INT 1
  27: ST_TO_ADDR
// Ludzie ;
  28: CALL 1305 0 0
// PrepareAmerican ;
  32: CALL 2037 0 0
// InGameon ;
  36: CALL_OW 8
// game_speed := 7 ;
  40: LD_ADDR_OWVAR 65
  44: PUSH
  45: LD_INT 7
  47: ST_TO_ADDR
// ComResearch ( lab1 , tech_radar ) ;
  48: LD_INT 8
  50: PPUSH
  51: LD_INT 6
  53: PPUSH
  54: CALL_OW 124
// AddComMoveXY ( Nefarem , 16 , 10 ) ;
  58: LD_EXP 6
  62: PPUSH
  63: LD_INT 16
  65: PPUSH
  66: LD_INT 10
  68: PPUSH
  69: CALL_OW 171
// AddComMoveXY ( Nefarem , 46 , 43 ) ;
  73: LD_EXP 6
  77: PPUSH
  78: LD_INT 46
  80: PPUSH
  81: LD_INT 43
  83: PPUSH
  84: CALL_OW 171
// AddComMoveXY ( Nefarem , 70 , 76 ) ;
  88: LD_EXP 6
  92: PPUSH
  93: LD_INT 70
  95: PPUSH
  96: LD_INT 76
  98: PPUSH
  99: CALL_OW 171
// AddComMoveXY ( Nefarem , 96 , 76 ) ;
 103: LD_EXP 6
 107: PPUSH
 108: LD_INT 96
 110: PPUSH
 111: LD_INT 76
 113: PPUSH
 114: CALL_OW 171
// AddComMoveXY ( Nefarem , 93 , 21 ) ;
 118: LD_EXP 6
 122: PPUSH
 123: LD_INT 93
 125: PPUSH
 126: LD_INT 21
 128: PPUSH
 129: CALL_OW 171
// AddComExitVehicle ( Nefarem ) ;
 133: LD_EXP 6
 137: PPUSH
 138: CALL_OW 181
// AddComMoveUnit ( Nefarem , dow ) ;
 142: LD_EXP 6
 146: PPUSH
 147: LD_EXP 9
 151: PPUSH
 152: CALL_OW 172
// end ;
 156: END
// every 0 0$1 trigger GetDistUnits ( Nefarem , dow ) < 2 do
 157: LD_EXP 6
 161: PPUSH
 162: LD_EXP 9
 166: PPUSH
 167: CALL_OW 296
 171: PUSH
 172: LD_INT 2
 174: LESS
 175: IFFALSE 367
 177: GO 179
 179: DISABLE
// begin ; ChangeSideFog ( 4 , 1 ) ;
 180: LD_INT 4
 182: PPUSH
 183: LD_INT 1
 185: PPUSH
 186: CALL_OW 343
// Say ( Nefarem , b4 ) ;
 190: LD_EXP 6
 194: PPUSH
 195: LD_STRING b4
 197: PPUSH
 198: CALL_OW 88
// Say ( dow , b5 ) ;
 202: LD_EXP 9
 206: PPUSH
 207: LD_STRING b5
 209: PPUSH
 210: CALL_OW 88
// Say ( Nefarem , b5-1 ) ;
 214: LD_EXP 6
 218: PPUSH
 219: LD_STRING b5-1
 221: PPUSH
 222: CALL_OW 88
// Say ( dow , b5-2 ) ;
 226: LD_EXP 9
 230: PPUSH
 231: LD_STRING b5-2
 233: PPUSH
 234: CALL_OW 88
// Say ( Nefarem , b6 ) ;
 238: LD_EXP 6
 242: PPUSH
 243: LD_STRING b6
 245: PPUSH
 246: CALL_OW 88
// ComMoveUnit ( dow , bulwa1 ) ;
 250: LD_EXP 9
 254: PPUSH
 255: LD_INT 141
 257: PPUSH
 258: CALL_OW 112
// ComMoveUnit ( Nefarem , wot ) ;
 262: LD_EXP 6
 266: PPUSH
 267: LD_INT 181
 269: PPUSH
 270: CALL_OW 112
// ComMoveUnit ( W2 , bulwa2 ) ;
 274: LD_EXP 10
 278: PPUSH
 279: LD_INT 18
 281: PPUSH
 282: CALL_OW 112
// SetFuel ( wot , 85 ) ;
 286: LD_INT 181
 288: PPUSH
 289: LD_INT 85
 291: PPUSH
 292: CALL_OW 240
// AddComMoveXY ( dow , 99 , 80 ) ;
 296: LD_EXP 9
 300: PPUSH
 301: LD_INT 99
 303: PPUSH
 304: LD_INT 80
 306: PPUSH
 307: CALL_OW 171
// AddComMoveXY ( W2 , 95 , 74 ) ;
 311: LD_EXP 10
 315: PPUSH
 316: LD_INT 95
 318: PPUSH
 319: LD_INT 74
 321: PPUSH
 322: CALL_OW 171
// wait ( 0 0$10 ) ;
 326: LD_INT 350
 328: PPUSH
 329: CALL_OW 67
// ComMoveUnit ( wot , bulwa2 ) ;
 333: LD_INT 181
 335: PPUSH
 336: LD_INT 18
 338: PPUSH
 339: CALL_OW 112
// Say ( dow , b7 ) ;
 343: LD_EXP 9
 347: PPUSH
 348: LD_STRING b7
 350: PPUSH
 351: CALL_OW 88
// Say ( Nefarem , b8 ) ;
 355: LD_EXP 6
 359: PPUSH
 360: LD_STRING b8
 362: PPUSH
 363: CALL_OW 88
// end ;
 367: END
// every 0 0$01 trigger IsInArea ( dow , uwaga3 ) do
 368: LD_EXP 9
 372: PPUSH
 373: LD_INT 6
 375: PPUSH
 376: CALL_OW 308
 380: IFFALSE 720
 382: GO 384
 384: DISABLE
// begin DialogueOn ;
 385: CALL_OW 6
// ComExitVehicle ( dow ) ;
 389: LD_EXP 9
 393: PPUSH
 394: CALL_OW 121
// Say ( dow , b11 ) ;
 398: LD_EXP 9
 402: PPUSH
 403: LD_STRING b11
 405: PPUSH
 406: CALL_OW 88
// Say ( Nefarem , b12 ) ;
 410: LD_EXP 6
 414: PPUSH
 415: LD_STRING b12
 417: PPUSH
 418: CALL_OW 88
// Say ( dow , b13 ) ;
 422: LD_EXP 9
 426: PPUSH
 427: LD_STRING b13
 429: PPUSH
 430: CALL_OW 88
// Say ( Nefarem , b14 ) ;
 434: LD_EXP 6
 438: PPUSH
 439: LD_STRING b14
 441: PPUSH
 442: CALL_OW 88
// SayRadio ( DOC , b15 ) ;
 446: LD_EXP 8
 450: PPUSH
 451: LD_STRING b15
 453: PPUSH
 454: CALL_OW 94
// Say ( Nefarem , b16 ) ;
 458: LD_EXP 6
 462: PPUSH
 463: LD_STRING b16
 465: PPUSH
 466: CALL_OW 88
// Dialogueoff ;
 470: CALL_OW 7
// SaveForQuickRestart ;
 474: CALL_OW 22
// ChangeMissionObjectives ( M0 ) ;
 478: LD_STRING M0
 480: PPUSH
 481: CALL_OW 337
// game_speed := 4 ;
 485: LD_ADDR_OWVAR 65
 489: PUSH
 490: LD_INT 4
 492: ST_TO_ADDR
// Center = 0 ;
 493: LD_ADDR_EXP 14
 497: PUSH
 498: LD_INT 0
 500: ST_TO_ADDR
// InGameoff ;
 501: CALL_OW 9
// SetSide ( FilterUnitsInArea ( STREFA , [ [ f_side , 1 ] ] ) , 4 ) ;
 505: LD_INT 9
 507: PPUSH
 508: LD_INT 22
 510: PUSH
 511: LD_INT 1
 513: PUSH
 514: EMPTY
 515: LIST
 516: LIST
 517: PUSH
 518: EMPTY
 519: LIST
 520: PPUSH
 521: CALL_OW 70
 525: PPUSH
 526: LD_INT 4
 528: PPUSH
 529: CALL_OW 235
// SetSide ( AmericanPerson , 4 ) ;
 533: LD_EXP 12
 537: PPUSH
 538: LD_INT 4
 540: PPUSH
 541: CALL_OW 235
// SetSide ( [ bulwa1 , bulwa2 , dow , DOC , W1 , W2 ] , 4 ) ;
 545: LD_INT 141
 547: PUSH
 548: LD_INT 18
 550: PUSH
 551: LD_EXP 9
 555: PUSH
 556: LD_EXP 8
 560: PUSH
 561: LD_EXP 7
 565: PUSH
 566: LD_EXP 10
 570: PUSH
 571: EMPTY
 572: LIST
 573: LIST
 574: LIST
 575: LIST
 576: LIST
 577: LIST
 578: PPUSH
 579: LD_INT 4
 581: PPUSH
 582: CALL_OW 235
// Czasc = true ;
 586: LD_ADDR_EXP 15
 590: PUSH
 591: LD_INT 1
 593: ST_TO_ADDR
// wait ( 1 1$40 ) ;
 594: LD_INT 3500
 596: PPUSH
 597: CALL_OW 67
// ATAK1 ;
 601: CALL 3670 0 0
// wait ( 1 1$00 ) ;
 605: LD_INT 2100
 607: PPUSH
 608: CALL_OW 67
// Say ( Nefarem , b16a ) ;
 612: LD_EXP 6
 616: PPUSH
 617: LD_STRING b16a
 619: PPUSH
 620: CALL_OW 88
// wait ( 2 2$09 ) ;
 624: LD_INT 4515
 626: PPUSH
 627: CALL_OW 67
// wait ( 0 0$05 ) ;
 631: LD_INT 175
 633: PPUSH
 634: CALL_OW 67
// ATTACK2 ;
 638: CALL 4617 0 0
// AddComMoveXY ( [ A1 , A2 ] , 93 , 21 ) ;
 642: LD_EXP 17
 646: PUSH
 647: LD_EXP 18
 651: PUSH
 652: EMPTY
 653: LIST
 654: LIST
 655: PPUSH
 656: LD_INT 93
 658: PPUSH
 659: LD_INT 21
 661: PPUSH
 662: CALL_OW 171
// wait ( 1 1$00 ) ;
 666: LD_INT 2100
 668: PPUSH
 669: CALL_OW 67
// Say ( Doc , b17 ) ;
 673: LD_EXP 8
 677: PPUSH
 678: LD_STRING b17
 680: PPUSH
 681: CALL_OW 88
// Say ( Nefarem , b18 ) ;
 685: LD_EXP 6
 689: PPUSH
 690: LD_STRING b18
 692: PPUSH
 693: CALL_OW 88
// Say ( Doc , b19 ) ;
 697: LD_EXP 8
 701: PPUSH
 702: LD_STRING b19
 704: PPUSH
 705: CALL_OW 88
// wait ( 1 1$15 ) ;
 709: LD_INT 2625
 711: PPUSH
 712: CALL_OW 67
// POMOC ;
 716: CALL 5171 0 0
// end ;
 720: END
// every 1 trigger IsInArea ( POM1 , Area17 ) do
 721: LD_EXP 27
 725: PPUSH
 726: LD_INT 11
 728: PPUSH
 729: CALL_OW 308
 733: IFFALSE 883
 735: GO 737
 737: DISABLE
// begin Say ( POM1 , b20 ) ;
 738: LD_EXP 27
 742: PPUSH
 743: LD_STRING b20
 745: PPUSH
 746: CALL_OW 88
// Say ( Nefarem , b21 ) ;
 750: LD_EXP 6
 754: PPUSH
 755: LD_STRING b21
 757: PPUSH
 758: CALL_OW 88
// Say ( POM1 , b22 ) ;
 762: LD_EXP 27
 766: PPUSH
 767: LD_STRING b22
 769: PPUSH
 770: CALL_OW 88
// Say ( POM1 , b23 ) ;
 774: LD_EXP 27
 778: PPUSH
 779: LD_STRING b23
 781: PPUSH
 782: CALL_OW 88
// Say ( Nefarem , b24 ) ;
 786: LD_EXP 6
 790: PPUSH
 791: LD_STRING b24
 793: PPUSH
 794: CALL_OW 88
// Say ( POM1 , b25 ) ;
 798: LD_EXP 27
 802: PPUSH
 803: LD_STRING b25
 805: PPUSH
 806: CALL_OW 88
// Say ( Nefarem , b26 ) ;
 810: LD_EXP 6
 814: PPUSH
 815: LD_STRING b26
 817: PPUSH
 818: CALL_OW 88
// Say ( POM1 , b27 ) ;
 822: LD_EXP 27
 826: PPUSH
 827: LD_STRING b27
 829: PPUSH
 830: CALL_OW 88
// Say ( Nefarem , b28 ) ;
 834: LD_EXP 6
 838: PPUSH
 839: LD_STRING b28
 841: PPUSH
 842: CALL_OW 88
// SetSide ( [ POM1 , POM2 , POM3 ] , 4 ) ;
 846: LD_EXP 27
 850: PUSH
 851: LD_EXP 28
 855: PUSH
 856: LD_EXP 29
 860: PUSH
 861: EMPTY
 862: LIST
 863: LIST
 864: LIST
 865: PPUSH
 866: LD_INT 4
 868: PPUSH
 869: CALL_OW 235
// wait ( 1 1$50 ) ;
 873: LD_INT 3850
 875: PPUSH
 876: CALL_OW 67
// enable ( 110 ) ;
 880: LD_INT 110
 882: ENABLE_MARKED
// end ;
 883: END
// every 1 marked 110 do var losowanie ;
 884: GO 886
 886: DISABLE
 887: LD_INT 0
 889: PPUSH
// begin disable ;
 890: DISABLE
// Randomize ;
 891: CALL_OW 10
// case Rand ( 1 , 2 ) of 1 :
 895: LD_INT 1
 897: PPUSH
 898: LD_INT 2
 900: PPUSH
 901: CALL_OW 12
 905: PUSH
 906: LD_INT 1
 908: DOUBLE
 909: EQUAL
 910: IFTRUE 914
 912: GO 938
 914: POP
// begin Attack1 ;
 915: CALL 4019 0 0
// Ru_attack = Ru_Attack + 1 ;
 919: LD_ADDR_EXP 5
 923: PUSH
 924: LD_EXP 5
 928: PUSH
 929: LD_INT 1
 931: PLUS
 932: ST_TO_ADDR
// enable ( 120 ) ;
 933: LD_INT 120
 935: ENABLE_MARKED
// end ; 2 :
 936: GO 971
 938: LD_INT 2
 940: DOUBLE
 941: EQUAL
 942: IFTRUE 946
 944: GO 970
 946: POP
// begin Attack2 ;
 947: CALL 4617 0 0
// Ru_attack = Ru_Attack + 1 ;
 951: LD_ADDR_EXP 5
 955: PUSH
 956: LD_EXP 5
 960: PUSH
 961: LD_INT 1
 963: PLUS
 964: ST_TO_ADDR
// enable ( 120 ) ;
 965: LD_INT 120
 967: ENABLE_MARKED
// end ; end ;
 968: GO 971
 970: POP
// end ;
 971: PPOPN 1
 973: END
// every 0 0$20 trigger FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) = 0 marked 120 do
 974: LD_INT 22
 976: PUSH
 977: LD_INT 6
 979: PUSH
 980: EMPTY
 981: LIST
 982: LIST
 983: PUSH
 984: LD_INT 21
 986: PUSH
 987: LD_INT 1
 989: PUSH
 990: EMPTY
 991: LIST
 992: LIST
 993: PUSH
 994: EMPTY
 995: LIST
 996: LIST
 997: PPUSH
 998: CALL_OW 69
1002: PUSH
1003: LD_INT 0
1005: EQUAL
1006: IFFALSE 1015
1008: GO 1010
1010: DISABLE
// begin enable ( 110 ) ;
1011: LD_INT 110
1013: ENABLE_MARKED
// disable ;
1014: DISABLE
// end ;
1015: END
// every 0 0$01 do
1016: GO 1018
1018: DISABLE
// begin enable ;
1019: ENABLE
// if Ru_attack = [ 4 , 5 , 7 ] [ Difficulty ] then
1020: LD_EXP 5
1024: PUSH
1025: LD_INT 4
1027: PUSH
1028: LD_INT 5
1030: PUSH
1031: LD_INT 7
1033: PUSH
1034: EMPTY
1035: LIST
1036: LIST
1037: LIST
1038: PUSH
1039: LD_OWVAR 67
1043: ARRAY
1044: EQUAL
1045: IFFALSE 1304
// begin disable ( 110 ) ;
1047: LD_INT 110
1049: DISABLE_MARKED
// disable ( 120 ) ;
1050: LD_INT 120
1052: DISABLE_MARKED
// if FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_human ] ] ) = 0 then
1053: LD_INT 22
1055: PUSH
1056: LD_INT 6
1058: PUSH
1059: EMPTY
1060: LIST
1061: LIST
1062: PUSH
1063: LD_INT 21
1065: PUSH
1066: LD_INT 1
1068: PUSH
1069: EMPTY
1070: LIST
1071: LIST
1072: PUSH
1073: EMPTY
1074: LIST
1075: LIST
1076: PPUSH
1077: CALL_OW 69
1081: PUSH
1082: LD_INT 0
1084: EQUAL
1085: IFFALSE 1304
// begin DialogueOn ;
1087: CALL_OW 6
// SayRadio ( PULK , b29 ) ;
1091: LD_EXP 11
1095: PPUSH
1096: LD_STRING b29
1098: PPUSH
1099: CALL_OW 94
// SayRadio ( Nefarem , b30 ) ;
1103: LD_EXP 6
1107: PPUSH
1108: LD_STRING b30
1110: PPUSH
1111: CALL_OW 94
// SayRadio ( PULK , b31 ) ;
1115: LD_EXP 11
1119: PPUSH
1120: LD_STRING b31
1122: PPUSH
1123: CALL_OW 94
// SayRadio ( Nefarem , b32 ) ;
1127: LD_EXP 6
1131: PPUSH
1132: LD_STRING b32
1134: PPUSH
1135: CALL_OW 94
// SayRadio ( PULK , b33 ) ;
1139: LD_EXP 11
1143: PPUSH
1144: LD_STRING b33
1146: PPUSH
1147: CALL_OW 94
// SayRadio ( Nefarem , b34 ) ;
1151: LD_EXP 6
1155: PPUSH
1156: LD_STRING b34
1158: PPUSH
1159: CALL_OW 94
// SayRadio ( PULK , b35 ) ;
1163: LD_EXP 11
1167: PPUSH
1168: LD_STRING b35
1170: PPUSH
1171: CALL_OW 94
// SayRadio ( Nefarem , b36 ) ;
1175: LD_EXP 6
1179: PPUSH
1180: LD_STRING b36
1182: PPUSH
1183: CALL_OW 94
// DialogueOff ;
1187: CALL_OW 7
// AddExperience ( Nefarem , skill_combat , 2500 ) ;
1191: LD_EXP 6
1195: PPUSH
1196: LD_INT 1
1198: PPUSH
1199: LD_INT 2500
1201: PPUSH
1202: CALL_OW 492
// AddExperience ( Nefarem , skill_engineering , 1500 ) ;
1206: LD_EXP 6
1210: PPUSH
1211: LD_INT 2
1213: PPUSH
1214: LD_INT 1500
1216: PPUSH
1217: CALL_OW 492
// AddExperience ( Nefarem , skill_mechanical , 1000 ) ;
1221: LD_EXP 6
1225: PPUSH
1226: LD_INT 3
1228: PPUSH
1229: LD_INT 1000
1231: PPUSH
1232: CALL_OW 492
// AddExperience ( Nefarem , skill_scientistic , 1000 ) ;
1236: LD_EXP 6
1240: PPUSH
1241: LD_INT 4
1243: PPUSH
1244: LD_INT 1000
1246: PPUSH
1247: CALL_OW 492
// RewardPeople ( Nefarem ) ;
1251: LD_EXP 6
1255: PPUSH
1256: CALL_OW 43
// SaveCharacters ( Nefarem , Nefarem ) ;
1260: LD_EXP 6
1264: PPUSH
1265: LD_STRING Nefarem
1267: PPUSH
1268: CALL_OW 38
// SaveCharacters ( DOC , DOC ) ;
1272: LD_EXP 8
1276: PPUSH
1277: LD_STRING DOC
1279: PPUSH
1280: CALL_OW 38
// SaveCharacters ( PULK , PULK ) ;
1284: LD_EXP 11
1288: PPUSH
1289: LD_STRING PULK
1291: PPUSH
1292: CALL_OW 38
// medale ;
1296: CALL 5604 0 0
// YouWin ;
1300: CALL_OW 103
// end ; end ; end ; end_of_file
1304: END
// export Nefarem , W1 , DOC , dow , W2 , PULK ; export function Ludzie ; begin
1305: LD_INT 0
1307: PPUSH
// uc_side = 4 ;
1308: LD_ADDR_OWVAR 20
1312: PUSH
1313: LD_INT 4
1315: ST_TO_ADDR
// uc_nation = 1 ;
1316: LD_ADDR_OWVAR 21
1320: PUSH
1321: LD_INT 1
1323: ST_TO_ADDR
// Nefarem := CreateCharacter ( Nefarem ) ;
1324: LD_ADDR_EXP 6
1328: PUSH
1329: LD_STRING Nefarem
1331: PPUSH
1332: CALL_OW 34
1336: ST_TO_ADDR
// PlaceHumanInUnit ( Nefarem , wot ) ;
1337: LD_EXP 6
1341: PPUSH
1342: LD_INT 181
1344: PPUSH
1345: CALL_OW 52
// uc_side = 1 ;
1349: LD_ADDR_OWVAR 20
1353: PUSH
1354: LD_INT 1
1356: ST_TO_ADDR
// uc_nation = 1 ;
1357: LD_ADDR_OWVAR 21
1361: PUSH
1362: LD_INT 1
1364: ST_TO_ADDR
// hc_gallery =  ;
1365: LD_ADDR_OWVAR 33
1369: PUSH
1370: LD_STRING 
1372: ST_TO_ADDR
// hc_name =  ;
1373: LD_ADDR_OWVAR 26
1377: PUSH
1378: LD_STRING 
1380: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1381: LD_ADDR_OWVAR 29
1385: PUSH
1386: LD_INT 9
1388: PPUSH
1389: LD_INT 11
1391: PPUSH
1392: CALL_OW 12
1396: PUSH
1397: LD_INT 10
1399: PPUSH
1400: LD_INT 12
1402: PPUSH
1403: CALL_OW 12
1407: PUSH
1408: EMPTY
1409: LIST
1410: LIST
1411: ST_TO_ADDR
// hc_skills = [ 3 , Rand ( 0 , 1 ) , Rand ( 0 , 3 ) , Rand ( 0 , 1 ) ] ;
1412: LD_ADDR_OWVAR 31
1416: PUSH
1417: LD_INT 3
1419: PUSH
1420: LD_INT 0
1422: PPUSH
1423: LD_INT 1
1425: PPUSH
1426: CALL_OW 12
1430: PUSH
1431: LD_INT 0
1433: PPUSH
1434: LD_INT 3
1436: PPUSH
1437: CALL_OW 12
1441: PUSH
1442: LD_INT 0
1444: PPUSH
1445: LD_INT 1
1447: PPUSH
1448: CALL_OW 12
1452: PUSH
1453: EMPTY
1454: LIST
1455: LIST
1456: LIST
1457: LIST
1458: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1459: LD_ADDR_OWVAR 27
1463: PUSH
1464: LD_INT 1
1466: PPUSH
1467: LD_INT 2
1469: PPUSH
1470: CALL_OW 12
1474: ST_TO_ADDR
// hc_class = 1 ;
1475: LD_ADDR_OWVAR 28
1479: PUSH
1480: LD_INT 1
1482: ST_TO_ADDR
// hc_importance = 10 ;
1483: LD_ADDR_OWVAR 32
1487: PUSH
1488: LD_INT 10
1490: ST_TO_ADDR
// W1 = CreateHuman ;
1491: LD_ADDR_EXP 7
1495: PUSH
1496: CALL_OW 44
1500: ST_TO_ADDR
// PlaceHumanInUnit ( W1 , bunk1 ) ;
1501: LD_EXP 7
1505: PPUSH
1506: LD_INT 42
1508: PPUSH
1509: CALL_OW 52
// uc_side = 1 ;
1513: LD_ADDR_OWVAR 20
1517: PUSH
1518: LD_INT 1
1520: ST_TO_ADDR
// uc_nation = 1 ;
1521: LD_ADDR_OWVAR 21
1525: PUSH
1526: LD_INT 1
1528: ST_TO_ADDR
// hc_gallery =  ;
1529: LD_ADDR_OWVAR 33
1533: PUSH
1534: LD_STRING 
1536: ST_TO_ADDR
// hc_name = Dr. Nawnicki ;
1537: LD_ADDR_OWVAR 26
1541: PUSH
1542: LD_STRING Dr. Nawnicki
1544: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1545: LD_ADDR_OWVAR 29
1549: PUSH
1550: LD_INT 9
1552: PPUSH
1553: LD_INT 11
1555: PPUSH
1556: CALL_OW 12
1560: PUSH
1561: LD_INT 10
1563: PPUSH
1564: LD_INT 12
1566: PPUSH
1567: CALL_OW 12
1571: PUSH
1572: EMPTY
1573: LIST
1574: LIST
1575: ST_TO_ADDR
// hc_skills = [ 2 , Rand ( 1 , 2 ) , Rand ( 2 , 4 ) , 6 ] ;
1576: LD_ADDR_OWVAR 31
1580: PUSH
1581: LD_INT 2
1583: PUSH
1584: LD_INT 1
1586: PPUSH
1587: LD_INT 2
1589: PPUSH
1590: CALL_OW 12
1594: PUSH
1595: LD_INT 2
1597: PPUSH
1598: LD_INT 4
1600: PPUSH
1601: CALL_OW 12
1605: PUSH
1606: LD_INT 6
1608: PUSH
1609: EMPTY
1610: LIST
1611: LIST
1612: LIST
1613: LIST
1614: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1615: LD_ADDR_OWVAR 27
1619: PUSH
1620: LD_INT 1
1622: PPUSH
1623: LD_INT 2
1625: PPUSH
1626: CALL_OW 12
1630: ST_TO_ADDR
// hc_class = 4 ;
1631: LD_ADDR_OWVAR 28
1635: PUSH
1636: LD_INT 4
1638: ST_TO_ADDR
// hc_importance = 10 ;
1639: LD_ADDR_OWVAR 32
1643: PUSH
1644: LD_INT 10
1646: ST_TO_ADDR
// DOC = CreateHuman ;
1647: LD_ADDR_EXP 8
1651: PUSH
1652: CALL_OW 44
1656: ST_TO_ADDR
// PlaceHumanInUnit ( DOC , lab1 ) ;
1657: LD_EXP 8
1661: PPUSH
1662: LD_INT 8
1664: PPUSH
1665: CALL_OW 52
// uc_side = 1 ;
1669: LD_ADDR_OWVAR 20
1673: PUSH
1674: LD_INT 1
1676: ST_TO_ADDR
// uc_nation = 1 ;
1677: LD_ADDR_OWVAR 21
1681: PUSH
1682: LD_INT 1
1684: ST_TO_ADDR
// hc_gallery =  ;
1685: LD_ADDR_OWVAR 33
1689: PUSH
1690: LD_STRING 
1692: ST_TO_ADDR
// hc_name = Steve ;
1693: LD_ADDR_OWVAR 26
1697: PUSH
1698: LD_STRING Steve
1700: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1701: LD_ADDR_OWVAR 29
1705: PUSH
1706: LD_INT 9
1708: PPUSH
1709: LD_INT 11
1711: PPUSH
1712: CALL_OW 12
1716: PUSH
1717: LD_INT 10
1719: PPUSH
1720: LD_INT 12
1722: PPUSH
1723: CALL_OW 12
1727: PUSH
1728: EMPTY
1729: LIST
1730: LIST
1731: ST_TO_ADDR
// hc_skills = [ 4 , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) , Rand ( 0 , 3 ) ] ;
1732: LD_ADDR_OWVAR 31
1736: PUSH
1737: LD_INT 4
1739: PUSH
1740: LD_INT 0
1742: PPUSH
1743: LD_INT 3
1745: PPUSH
1746: CALL_OW 12
1750: PUSH
1751: LD_INT 0
1753: PPUSH
1754: LD_INT 2
1756: PPUSH
1757: CALL_OW 12
1761: PUSH
1762: LD_INT 0
1764: PPUSH
1765: LD_INT 3
1767: PPUSH
1768: CALL_OW 12
1772: PUSH
1773: EMPTY
1774: LIST
1775: LIST
1776: LIST
1777: LIST
1778: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1779: LD_ADDR_OWVAR 27
1783: PUSH
1784: LD_INT 1
1786: PPUSH
1787: LD_INT 2
1789: PPUSH
1790: CALL_OW 12
1794: ST_TO_ADDR
// hc_class = 1 ;
1795: LD_ADDR_OWVAR 28
1799: PUSH
1800: LD_INT 1
1802: ST_TO_ADDR
// hc_importance = 10 ;
1803: LD_ADDR_OWVAR 32
1807: PUSH
1808: LD_INT 10
1810: ST_TO_ADDR
// dow = CreateHuman ;
1811: LD_ADDR_EXP 9
1815: PUSH
1816: CALL_OW 44
1820: ST_TO_ADDR
// PlaceUnitArea ( dow , czlowieki , false ) ;
1821: LD_EXP 9
1825: PPUSH
1826: LD_INT 2
1828: PPUSH
1829: LD_INT 0
1831: PPUSH
1832: CALL_OW 49
// uc_side = 1 ;
1836: LD_ADDR_OWVAR 20
1840: PUSH
1841: LD_INT 1
1843: ST_TO_ADDR
// uc_nation = 1 ;
1844: LD_ADDR_OWVAR 21
1848: PUSH
1849: LD_INT 1
1851: ST_TO_ADDR
// hc_gallery =  ;
1852: LD_ADDR_OWVAR 33
1856: PUSH
1857: LD_STRING 
1859: ST_TO_ADDR
// hc_name =  ;
1860: LD_ADDR_OWVAR 26
1864: PUSH
1865: LD_STRING 
1867: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
1868: LD_ADDR_OWVAR 29
1872: PUSH
1873: LD_INT 9
1875: PPUSH
1876: LD_INT 11
1878: PPUSH
1879: CALL_OW 12
1883: PUSH
1884: LD_INT 10
1886: PPUSH
1887: LD_INT 12
1889: PPUSH
1890: CALL_OW 12
1894: PUSH
1895: EMPTY
1896: LIST
1897: LIST
1898: ST_TO_ADDR
// hc_skills = [ 2 , Rand ( 0 , 3 ) , Rand ( 0 , 2 ) , Rand ( 0 , 3 ) ] ;
1899: LD_ADDR_OWVAR 31
1903: PUSH
1904: LD_INT 2
1906: PUSH
1907: LD_INT 0
1909: PPUSH
1910: LD_INT 3
1912: PPUSH
1913: CALL_OW 12
1917: PUSH
1918: LD_INT 0
1920: PPUSH
1921: LD_INT 2
1923: PPUSH
1924: CALL_OW 12
1928: PUSH
1929: LD_INT 0
1931: PPUSH
1932: LD_INT 3
1934: PPUSH
1935: CALL_OW 12
1939: PUSH
1940: EMPTY
1941: LIST
1942: LIST
1943: LIST
1944: LIST
1945: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
1946: LD_ADDR_OWVAR 27
1950: PUSH
1951: LD_INT 1
1953: PPUSH
1954: LD_INT 2
1956: PPUSH
1957: CALL_OW 12
1961: ST_TO_ADDR
// hc_class = 1 ;
1962: LD_ADDR_OWVAR 28
1966: PUSH
1967: LD_INT 1
1969: ST_TO_ADDR
// hc_importance = 10 ;
1970: LD_ADDR_OWVAR 32
1974: PUSH
1975: LD_INT 10
1977: ST_TO_ADDR
// W2 = CreateHuman ;
1978: LD_ADDR_EXP 10
1982: PUSH
1983: CALL_OW 44
1987: ST_TO_ADDR
// PlaceUnitArea ( W2 , czlowieki , false ) ;
1988: LD_EXP 10
1992: PPUSH
1993: LD_INT 2
1995: PPUSH
1996: LD_INT 0
1998: PPUSH
1999: CALL_OW 49
// uc_side = 1 ;
2003: LD_ADDR_OWVAR 20
2007: PUSH
2008: LD_INT 1
2010: ST_TO_ADDR
// uc_nation = 1 ;
2011: LD_ADDR_OWVAR 21
2015: PUSH
2016: LD_INT 1
2018: ST_TO_ADDR
// PULK := CreateCharacter ( PULK ) ;
2019: LD_ADDR_EXP 11
2023: PUSH
2024: LD_STRING PULK
2026: PPUSH
2027: CALL_OW 34
2031: ST_TO_ADDR
// end ; end_of_file
2032: LD_VAR 0 1
2036: RET
// export AmericanPerson , Am1_Turret ; export function PrepareAmerican ; var am_turret , i , un , b , x1 , y1 , k , l , level ; begin
2037: LD_INT 0
2039: PPUSH
2040: PPUSH
2041: PPUSH
2042: PPUSH
2043: PPUSH
2044: PPUSH
2045: PPUSH
2046: PPUSH
2047: PPUSH
2048: PPUSH
// Am1_Turret := FilterUnitsInArea ( Area07 , [ [ f_side , 1 ] , [ f_btype , b_breastwork ] ] ) ;
2049: LD_ADDR_EXP 13
2053: PUSH
2054: LD_INT 1
2056: PPUSH
2057: LD_INT 22
2059: PUSH
2060: LD_INT 1
2062: PUSH
2063: EMPTY
2064: LIST
2065: LIST
2066: PUSH
2067: LD_INT 30
2069: PUSH
2070: LD_INT 31
2072: PUSH
2073: EMPTY
2074: LIST
2075: LIST
2076: PUSH
2077: EMPTY
2078: LIST
2079: LIST
2080: PPUSH
2081: CALL_OW 70
2085: ST_TO_ADDR
// uc_side = 1 ;
2086: LD_ADDR_OWVAR 20
2090: PUSH
2091: LD_INT 1
2093: ST_TO_ADDR
// uc_nation = 1 ;
2094: LD_ADDR_OWVAR 21
2098: PUSH
2099: LD_INT 1
2101: ST_TO_ADDR
// hc_gallery =  ;
2102: LD_ADDR_OWVAR 33
2106: PUSH
2107: LD_STRING 
2109: ST_TO_ADDR
// hc_name =  ;
2110: LD_ADDR_OWVAR 26
2114: PUSH
2115: LD_STRING 
2117: ST_TO_ADDR
// for i in Am1_Turret do
2118: LD_ADDR_VAR 0 3
2122: PUSH
2123: LD_EXP 13
2127: PUSH
2128: FOR_IN
2129: IFFALSE 2317
// begin if IsInUnit ( i ) = 0 then
2131: LD_VAR 0 3
2135: PPUSH
2136: CALL_OW 310
2140: PUSH
2141: LD_INT 0
2143: EQUAL
2144: IFFALSE 2315
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2146: LD_ADDR_VAR 0 10
2150: PUSH
2151: LD_INT 4
2153: PUSH
2154: LD_INT 4
2156: PUSH
2157: LD_INT 4
2159: PUSH
2160: EMPTY
2161: LIST
2162: LIST
2163: LIST
2164: PUSH
2165: LD_OWVAR 67
2169: ARRAY
2170: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2171: LD_ADDR_OWVAR 29
2175: PUSH
2176: LD_INT 9
2178: PPUSH
2179: LD_INT 11
2181: PPUSH
2182: CALL_OW 12
2186: PUSH
2187: LD_INT 10
2189: PPUSH
2190: LD_INT 12
2192: PPUSH
2193: CALL_OW 12
2197: PUSH
2198: EMPTY
2199: LIST
2200: LIST
2201: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 3 ) , Rand ( 1 , 2 ) , Rand ( 0 , 2 ) ] ;
2202: LD_ADDR_OWVAR 31
2206: PUSH
2207: LD_VAR 0 10
2211: PUSH
2212: LD_INT 0
2214: PPUSH
2215: LD_INT 3
2217: PPUSH
2218: CALL_OW 12
2222: PUSH
2223: LD_INT 1
2225: PPUSH
2226: LD_INT 2
2228: PPUSH
2229: CALL_OW 12
2233: PUSH
2234: LD_INT 0
2236: PPUSH
2237: LD_INT 2
2239: PPUSH
2240: CALL_OW 12
2244: PUSH
2245: EMPTY
2246: LIST
2247: LIST
2248: LIST
2249: LIST
2250: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2251: LD_ADDR_OWVAR 27
2255: PUSH
2256: LD_INT 1
2258: PPUSH
2259: LD_INT 2
2261: PPUSH
2262: CALL_OW 12
2266: ST_TO_ADDR
// hc_class = 1 ;
2267: LD_ADDR_OWVAR 28
2271: PUSH
2272: LD_INT 1
2274: ST_TO_ADDR
// un := CreateHuman ;
2275: LD_ADDR_VAR 0 4
2279: PUSH
2280: CALL_OW 44
2284: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
2285: LD_VAR 0 4
2289: PPUSH
2290: LD_VAR 0 3
2294: PPUSH
2295: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2299: LD_ADDR_EXP 12
2303: PUSH
2304: LD_EXP 12
2308: PUSH
2309: LD_VAR 0 4
2313: ADD
2314: ST_TO_ADDR
// end ; end ;
2315: GO 2128
2317: POP
2318: POP
// for i in fab1 do
2319: LD_ADDR_VAR 0 3
2323: PUSH
2324: LD_INT 4
2326: PUSH
2327: FOR_IN
2328: IFFALSE 2578
// begin l = 0 ;
2330: LD_ADDR_VAR 0 9
2334: PUSH
2335: LD_INT 0
2337: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2338: LD_VAR 0 3
2342: PPUSH
2343: CALL_OW 310
2347: PUSH
2348: LD_INT 0
2350: EQUAL
2351: IFFALSE 2576
// begin Level = [ 5 , 5 , 5 ] [ Difficulty ] ;
2353: LD_ADDR_VAR 0 10
2357: PUSH
2358: LD_INT 5
2360: PUSH
2361: LD_INT 5
2363: PUSH
2364: LD_INT 5
2366: PUSH
2367: EMPTY
2368: LIST
2369: LIST
2370: LIST
2371: PUSH
2372: LD_OWVAR 67
2376: ARRAY
2377: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2378: LD_ADDR_OWVAR 20
2382: PUSH
2383: LD_INT 1
2385: ST_TO_ADDR
// uc_nation = 1 ;
2386: LD_ADDR_OWVAR 21
2390: PUSH
2391: LD_INT 1
2393: ST_TO_ADDR
// hc_gallery =  ;
2394: LD_ADDR_OWVAR 33
2398: PUSH
2399: LD_STRING 
2401: ST_TO_ADDR
// hc_name =  ;
2402: LD_ADDR_OWVAR 26
2406: PUSH
2407: LD_STRING 
2409: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2410: LD_ADDR_OWVAR 29
2414: PUSH
2415: LD_INT 9
2417: PPUSH
2418: LD_INT 11
2420: PPUSH
2421: CALL_OW 12
2425: PUSH
2426: LD_INT 10
2428: PPUSH
2429: LD_INT 12
2431: PPUSH
2432: CALL_OW 12
2436: PUSH
2437: EMPTY
2438: LIST
2439: LIST
2440: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , Rand ( 0 , 2 ) , Level , Rand ( 0 , 2 ) ] ;
2441: LD_ADDR_OWVAR 31
2445: PUSH
2446: LD_INT 0
2448: PPUSH
2449: LD_INT 2
2451: PPUSH
2452: CALL_OW 12
2456: PUSH
2457: LD_INT 0
2459: PPUSH
2460: LD_INT 2
2462: PPUSH
2463: CALL_OW 12
2467: PUSH
2468: LD_VAR 0 10
2472: PUSH
2473: LD_INT 0
2475: PPUSH
2476: LD_INT 2
2478: PPUSH
2479: CALL_OW 12
2483: PUSH
2484: EMPTY
2485: LIST
2486: LIST
2487: LIST
2488: LIST
2489: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2490: LD_ADDR_OWVAR 27
2494: PUSH
2495: LD_INT 1
2497: PPUSH
2498: LD_INT 2
2500: PPUSH
2501: CALL_OW 12
2505: ST_TO_ADDR
// hc_class = 3 ;
2506: LD_ADDR_OWVAR 28
2510: PUSH
2511: LD_INT 3
2513: ST_TO_ADDR
// un = CreateHuman ;
2514: LD_ADDR_VAR 0 4
2518: PUSH
2519: CALL_OW 44
2523: ST_TO_ADDR
// PlaceHumanInUnit ( un , fab1 ) ;
2524: LD_VAR 0 4
2528: PPUSH
2529: LD_INT 4
2531: PPUSH
2532: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2536: LD_ADDR_EXP 12
2540: PUSH
2541: LD_EXP 12
2545: PUSH
2546: LD_VAR 0 4
2550: ADD
2551: ST_TO_ADDR
// l = l + 1 ;
2552: LD_ADDR_VAR 0 9
2556: PUSH
2557: LD_VAR 0 9
2561: PUSH
2562: LD_INT 1
2564: PLUS
2565: ST_TO_ADDR
// end until l = 2 ;
2566: LD_VAR 0 9
2570: PUSH
2571: LD_INT 2
2573: EQUAL
2574: IFFALSE 2378
// end ; end ;
2576: GO 2327
2578: POP
2579: POP
// for i in zbroja1 do
2580: LD_ADDR_VAR 0 3
2584: PUSH
2585: LD_INT 12
2587: PUSH
2588: FOR_IN
2589: IFFALSE 2839
// begin l = 0 ;
2591: LD_ADDR_VAR 0 9
2595: PUSH
2596: LD_INT 0
2598: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2599: LD_VAR 0 3
2603: PPUSH
2604: CALL_OW 310
2608: PUSH
2609: LD_INT 0
2611: EQUAL
2612: IFFALSE 2837
// begin Level = [ 4 , 4 , 4 ] [ Difficulty ] ;
2614: LD_ADDR_VAR 0 10
2618: PUSH
2619: LD_INT 4
2621: PUSH
2622: LD_INT 4
2624: PUSH
2625: LD_INT 4
2627: PUSH
2628: EMPTY
2629: LIST
2630: LIST
2631: LIST
2632: PUSH
2633: LD_OWVAR 67
2637: ARRAY
2638: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2639: LD_ADDR_OWVAR 20
2643: PUSH
2644: LD_INT 1
2646: ST_TO_ADDR
// uc_nation = 1 ;
2647: LD_ADDR_OWVAR 21
2651: PUSH
2652: LD_INT 1
2654: ST_TO_ADDR
// hc_gallery =  ;
2655: LD_ADDR_OWVAR 33
2659: PUSH
2660: LD_STRING 
2662: ST_TO_ADDR
// hc_name =  ;
2663: LD_ADDR_OWVAR 26
2667: PUSH
2668: LD_STRING 
2670: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2671: LD_ADDR_OWVAR 29
2675: PUSH
2676: LD_INT 9
2678: PPUSH
2679: LD_INT 11
2681: PPUSH
2682: CALL_OW 12
2686: PUSH
2687: LD_INT 10
2689: PPUSH
2690: LD_INT 12
2692: PPUSH
2693: CALL_OW 12
2697: PUSH
2698: EMPTY
2699: LIST
2700: LIST
2701: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 2 ) , Rand ( 1 , 4 ) , Rand ( 0 , 2 ) ] ;
2702: LD_ADDR_OWVAR 31
2706: PUSH
2707: LD_VAR 0 10
2711: PUSH
2712: LD_INT 0
2714: PPUSH
2715: LD_INT 2
2717: PPUSH
2718: CALL_OW 12
2722: PUSH
2723: LD_INT 1
2725: PPUSH
2726: LD_INT 4
2728: PPUSH
2729: CALL_OW 12
2733: PUSH
2734: LD_INT 0
2736: PPUSH
2737: LD_INT 2
2739: PPUSH
2740: CALL_OW 12
2744: PUSH
2745: EMPTY
2746: LIST
2747: LIST
2748: LIST
2749: LIST
2750: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2751: LD_ADDR_OWVAR 27
2755: PUSH
2756: LD_INT 1
2758: PPUSH
2759: LD_INT 2
2761: PPUSH
2762: CALL_OW 12
2766: ST_TO_ADDR
// hc_class = 1 ;
2767: LD_ADDR_OWVAR 28
2771: PUSH
2772: LD_INT 1
2774: ST_TO_ADDR
// un = CreateHuman ;
2775: LD_ADDR_VAR 0 4
2779: PUSH
2780: CALL_OW 44
2784: ST_TO_ADDR
// PlaceHumanInUnit ( un , zbroja1 ) ;
2785: LD_VAR 0 4
2789: PPUSH
2790: LD_INT 12
2792: PPUSH
2793: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
2797: LD_ADDR_EXP 12
2801: PUSH
2802: LD_EXP 12
2806: PUSH
2807: LD_VAR 0 4
2811: ADD
2812: ST_TO_ADDR
// l = l + 1 ;
2813: LD_ADDR_VAR 0 9
2817: PUSH
2818: LD_VAR 0 9
2822: PUSH
2823: LD_INT 1
2825: PLUS
2826: ST_TO_ADDR
// end until l = 4 ;
2827: LD_VAR 0 9
2831: PUSH
2832: LD_INT 4
2834: EQUAL
2835: IFFALSE 2639
// end ; end ;
2837: GO 2588
2839: POP
2840: POP
// for i in depot1 do
2841: LD_ADDR_VAR 0 3
2845: PUSH
2846: LD_INT 1
2848: PUSH
2849: FOR_IN
2850: IFFALSE 3100
// begin l = 0 ;
2852: LD_ADDR_VAR 0 9
2856: PUSH
2857: LD_INT 0
2859: ST_TO_ADDR
// if IsInUnit ( i ) = 0 then
2860: LD_VAR 0 3
2864: PPUSH
2865: CALL_OW 310
2869: PUSH
2870: LD_INT 0
2872: EQUAL
2873: IFFALSE 3098
// begin Level = [ 5 , 5 , 5 ] [ Difficulty ] ;
2875: LD_ADDR_VAR 0 10
2879: PUSH
2880: LD_INT 5
2882: PUSH
2883: LD_INT 5
2885: PUSH
2886: LD_INT 5
2888: PUSH
2889: EMPTY
2890: LIST
2891: LIST
2892: LIST
2893: PUSH
2894: LD_OWVAR 67
2898: ARRAY
2899: ST_TO_ADDR
// repeat begin uc_side = 1 ;
2900: LD_ADDR_OWVAR 20
2904: PUSH
2905: LD_INT 1
2907: ST_TO_ADDR
// uc_nation = 1 ;
2908: LD_ADDR_OWVAR 21
2912: PUSH
2913: LD_INT 1
2915: ST_TO_ADDR
// hc_gallery =  ;
2916: LD_ADDR_OWVAR 33
2920: PUSH
2921: LD_STRING 
2923: ST_TO_ADDR
// hc_name =  ;
2924: LD_ADDR_OWVAR 26
2928: PUSH
2929: LD_STRING 
2931: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2932: LD_ADDR_OWVAR 29
2936: PUSH
2937: LD_INT 9
2939: PPUSH
2940: LD_INT 11
2942: PPUSH
2943: CALL_OW 12
2947: PUSH
2948: LD_INT 10
2950: PPUSH
2951: LD_INT 12
2953: PPUSH
2954: CALL_OW 12
2958: PUSH
2959: EMPTY
2960: LIST
2961: LIST
2962: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 3 ) , Level , Rand ( 2 , 3 ) , Rand ( 0 , 2 ) ] ;
2963: LD_ADDR_OWVAR 31
2967: PUSH
2968: LD_INT 0
2970: PPUSH
2971: LD_INT 3
2973: PPUSH
2974: CALL_OW 12
2978: PUSH
2979: LD_VAR 0 10
2983: PUSH
2984: LD_INT 2
2986: PPUSH
2987: LD_INT 3
2989: PPUSH
2990: CALL_OW 12
2994: PUSH
2995: LD_INT 0
2997: PPUSH
2998: LD_INT 2
3000: PPUSH
3001: CALL_OW 12
3005: PUSH
3006: EMPTY
3007: LIST
3008: LIST
3009: LIST
3010: LIST
3011: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3012: LD_ADDR_OWVAR 27
3016: PUSH
3017: LD_INT 1
3019: PPUSH
3020: LD_INT 2
3022: PPUSH
3023: CALL_OW 12
3027: ST_TO_ADDR
// hc_class = 2 ;
3028: LD_ADDR_OWVAR 28
3032: PUSH
3033: LD_INT 2
3035: ST_TO_ADDR
// un = CreateHuman ;
3036: LD_ADDR_VAR 0 4
3040: PUSH
3041: CALL_OW 44
3045: ST_TO_ADDR
// PlaceHumanInUnit ( un , depot1 ) ;
3046: LD_VAR 0 4
3050: PPUSH
3051: LD_INT 1
3053: PPUSH
3054: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
3058: LD_ADDR_EXP 12
3062: PUSH
3063: LD_EXP 12
3067: PUSH
3068: LD_VAR 0 4
3072: ADD
3073: ST_TO_ADDR
// l = l + 1 ;
3074: LD_ADDR_VAR 0 9
3078: PUSH
3079: LD_VAR 0 9
3083: PUSH
3084: LD_INT 1
3086: PLUS
3087: ST_TO_ADDR
// end until l = 1 ;
3088: LD_VAR 0 9
3092: PUSH
3093: LD_INT 1
3095: EQUAL
3096: IFFALSE 2900
// end ; end ;
3098: GO 2849
3100: POP
3101: POP
// for i in lab1 do
3102: LD_ADDR_VAR 0 3
3106: PUSH
3107: LD_INT 8
3109: PUSH
3110: FOR_IN
3111: IFFALSE 3313
// begin if IsInUnit ( i ) = 0 then
3113: LD_VAR 0 3
3117: PPUSH
3118: CALL_OW 310
3122: PUSH
3123: LD_INT 0
3125: EQUAL
3126: IFFALSE 3311
// begin Level = [ 2 , 2 , 2 ] [ Difficulty ] ;
3128: LD_ADDR_VAR 0 10
3132: PUSH
3133: LD_INT 2
3135: PUSH
3136: LD_INT 2
3138: PUSH
3139: LD_INT 2
3141: PUSH
3142: EMPTY
3143: LIST
3144: LIST
3145: LIST
3146: PUSH
3147: LD_OWVAR 67
3151: ARRAY
3152: ST_TO_ADDR
// uc_side = 1 ;
3153: LD_ADDR_OWVAR 20
3157: PUSH
3158: LD_INT 1
3160: ST_TO_ADDR
// uc_nation = 1 ;
3161: LD_ADDR_OWVAR 21
3165: PUSH
3166: LD_INT 1
3168: ST_TO_ADDR
// hc_gallery =  ;
3169: LD_ADDR_OWVAR 33
3173: PUSH
3174: LD_STRING 
3176: ST_TO_ADDR
// hc_name =  ;
3177: LD_ADDR_OWVAR 26
3181: PUSH
3182: LD_STRING 
3184: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
3185: LD_ADDR_OWVAR 29
3189: PUSH
3190: LD_INT 9
3192: PPUSH
3193: LD_INT 11
3195: PPUSH
3196: CALL_OW 12
3200: PUSH
3201: LD_INT 10
3203: PPUSH
3204: LD_INT 12
3206: PPUSH
3207: CALL_OW 12
3211: PUSH
3212: EMPTY
3213: LIST
3214: LIST
3215: ST_TO_ADDR
// hc_skills = [ 0 , 1 , Rand ( 1 , 4 ) , Level ] ;
3216: LD_ADDR_OWVAR 31
3220: PUSH
3221: LD_INT 0
3223: PUSH
3224: LD_INT 1
3226: PUSH
3227: LD_INT 1
3229: PPUSH
3230: LD_INT 4
3232: PPUSH
3233: CALL_OW 12
3237: PUSH
3238: LD_VAR 0 10
3242: PUSH
3243: EMPTY
3244: LIST
3245: LIST
3246: LIST
3247: LIST
3248: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3249: LD_ADDR_OWVAR 27
3253: PUSH
3254: LD_INT 1
3256: PPUSH
3257: LD_INT 2
3259: PPUSH
3260: CALL_OW 12
3264: ST_TO_ADDR
// hc_class = 4 ;
3265: LD_ADDR_OWVAR 28
3269: PUSH
3270: LD_INT 4
3272: ST_TO_ADDR
// un = CreateHuman ;
3273: LD_ADDR_VAR 0 4
3277: PUSH
3278: CALL_OW 44
3282: ST_TO_ADDR
// PlaceHumanInUnit ( un , lab1 ) ;
3283: LD_VAR 0 4
3287: PPUSH
3288: LD_INT 8
3290: PPUSH
3291: CALL_OW 52
// AmericanPerson = AmericanPerson ^ un ;
3295: LD_ADDR_EXP 12
3299: PUSH
3300: LD_EXP 12
3304: PUSH
3305: LD_VAR 0 4
3309: ADD
3310: ST_TO_ADDR
// end ; end ;
3311: GO 3110
3313: POP
3314: POP
// end ; end_of_file
3315: LD_VAR 0 1
3319: RET
// every 0 0$01 trigger IsInArea ( dow , uwaga1 ) do
3320: LD_EXP 9
3324: PPUSH
3325: LD_INT 4
3327: PPUSH
3328: CALL_OW 308
3332: IFFALSE 3350
3334: GO 3336
3336: DISABLE
// begin Say ( dow , b9 ) ;
3337: LD_EXP 9
3341: PPUSH
3342: LD_STRING b9
3344: PPUSH
3345: CALL_OW 88
// disable ;
3349: DISABLE
// end ;
3350: END
// every 0 0$01 trigger IsInArea ( dow , uwaga2 ) do
3351: LD_EXP 9
3355: PPUSH
3356: LD_INT 5
3358: PPUSH
3359: CALL_OW 308
3363: IFFALSE 3381
3365: GO 3367
3367: DISABLE
// begin Say ( dow , b10 ) ;
3368: LD_EXP 9
3372: PPUSH
3373: LD_STRING b10
3375: PPUSH
3376: CALL_OW 88
// disable ;
3380: DISABLE
// end ;
3381: END
// every 0 0$0.1 trigger IsInArea ( nefarem , Area13 ) do
3382: LD_EXP 6
3386: PPUSH
3387: LD_INT 7
3389: PPUSH
3390: CALL_OW 308
3394: IFFALSE 3451
3396: GO 3398
3398: DISABLE
// begin DialogueOn ;
3399: CALL_OW 6
// Say ( W1 , b1 ) ;
3403: LD_EXP 7
3407: PPUSH
3408: LD_STRING b1
3410: PPUSH
3411: CALL_OW 88
// Say ( Nefarem , b2 ) ;
3415: LD_EXP 6
3419: PPUSH
3420: LD_STRING b2
3422: PPUSH
3423: CALL_OW 88
// Say ( W1 , b3 ) ;
3427: LD_EXP 7
3431: PPUSH
3432: LD_STRING b3
3434: PPUSH
3435: CALL_OW 88
// DialogueOff ;
3439: CALL_OW 7
// Game_Speed = 7 ;
3443: LD_ADDR_OWVAR 65
3447: PUSH
3448: LD_INT 7
3450: ST_TO_ADDR
// end ;
3451: END
// every 0 0$01 trigger IsInArea ( dow , gotowosc ) and IsInArea ( W2 , gotowosc ) do
3452: LD_EXP 9
3456: PPUSH
3457: LD_INT 3
3459: PPUSH
3460: CALL_OW 308
3464: PUSH
3465: LD_EXP 10
3469: PPUSH
3470: LD_INT 3
3472: PPUSH
3473: CALL_OW 308
3477: AND
3478: IFFALSE 3586
3480: GO 3482
3482: DISABLE
// begin wait ( 0 0$06 ) ;
3483: LD_INT 210
3485: PPUSH
3486: CALL_OW 67
// AddComMoveXY ( [ dow , W2 ] , 120 , 101 ) ;
3490: LD_EXP 9
3494: PUSH
3495: LD_EXP 10
3499: PUSH
3500: EMPTY
3501: LIST
3502: LIST
3503: PPUSH
3504: LD_INT 120
3506: PPUSH
3507: LD_INT 101
3509: PPUSH
3510: CALL_OW 171
// AddComMoveXY ( [ dow , W2 ] , 110 , 115 ) ;
3514: LD_EXP 9
3518: PUSH
3519: LD_EXP 10
3523: PUSH
3524: EMPTY
3525: LIST
3526: LIST
3527: PPUSH
3528: LD_INT 110
3530: PPUSH
3531: LD_INT 115
3533: PPUSH
3534: CALL_OW 171
// AddComMoveXY ( [ dow , W2 ] , 126 , 191 ) ;
3538: LD_EXP 9
3542: PUSH
3543: LD_EXP 10
3547: PUSH
3548: EMPTY
3549: LIST
3550: LIST
3551: PPUSH
3552: LD_INT 126
3554: PPUSH
3555: LD_INT 191
3557: PPUSH
3558: CALL_OW 171
// AddComMoveXY ( [ dow , W2 ] , 213 , 189 ) ;
3562: LD_EXP 9
3566: PUSH
3567: LD_EXP 10
3571: PUSH
3572: EMPTY
3573: LIST
3574: LIST
3575: PPUSH
3576: LD_INT 213
3578: PPUSH
3579: LD_INT 189
3581: PPUSH
3582: CALL_OW 171
// end ; end_of_file
3586: END
// export Center ; every 0 0$01 trigger Center = 1 do
3587: LD_EXP 14
3591: PUSH
3592: LD_INT 1
3594: EQUAL
3595: IFFALSE 3608
3597: GO 3599
3599: DISABLE
// begin ; CenterNowOnUnits ( wot ) ;
3600: LD_INT 181
3602: PPUSH
3603: CALL_OW 87
// enable ;
3607: ENABLE
// end ; end_of_file
3608: END
// export CZASc , czas ; every 0 0$1 trigger CZASC = true do
3609: LD_EXP 15
3613: PUSH
3614: LD_INT 1
3616: EQUAL
3617: IFFALSE 3640
3619: GO 3621
3621: DISABLE
// begin Display_Strings := [ #Am03-1 , CZAS ] ;
3622: LD_ADDR_OWVAR 47
3626: PUSH
3627: LD_STRING #Am03-1
3629: PUSH
3630: LD_EXP 16
3634: PUSH
3635: EMPTY
3636: LIST
3637: LIST
3638: ST_TO_ADDR
// enable ;
3639: ENABLE
// end ;
3640: END
// every 0 0$1 trigger CzasC = true do
3641: LD_EXP 15
3645: PUSH
3646: LD_INT 1
3648: EQUAL
3649: IFFALSE 3669
3651: GO 3653
3653: DISABLE
// begin Czas = Czas + 0 0$1 ;
3654: LD_ADDR_EXP 16
3658: PUSH
3659: LD_EXP 16
3663: PUSH
3664: LD_INT 35
3666: PLUS
3667: ST_TO_ADDR
// enable ;
3668: ENABLE
// end ; end_of_file
3669: END
// export A1 , A2 , A3 , A4 ; export function ATAK1 ; begin
3670: LD_INT 0
3672: PPUSH
// SoldLevel = [ 1 , 2 , 2 ] [ Difficulty ] ;
3673: LD_ADDR_EXP 1
3677: PUSH
3678: LD_INT 1
3680: PUSH
3681: LD_INT 2
3683: PUSH
3684: LD_INT 2
3686: PUSH
3687: EMPTY
3688: LIST
3689: LIST
3690: LIST
3691: PUSH
3692: LD_OWVAR 67
3696: ARRAY
3697: ST_TO_ADDR
// EngLevel = [ 1 , 2 , 3 ] [ Difficulty ] ;
3698: LD_ADDR_EXP 2
3702: PUSH
3703: LD_INT 1
3705: PUSH
3706: LD_INT 2
3708: PUSH
3709: LD_INT 3
3711: PUSH
3712: EMPTY
3713: LIST
3714: LIST
3715: LIST
3716: PUSH
3717: LD_OWVAR 67
3721: ARRAY
3722: ST_TO_ADDR
// MechLevel = [ 5 , 6 , 7 ] [ Difficulty ] ;
3723: LD_ADDR_EXP 3
3727: PUSH
3728: LD_INT 5
3730: PUSH
3731: LD_INT 6
3733: PUSH
3734: LD_INT 7
3736: PUSH
3737: EMPTY
3738: LIST
3739: LIST
3740: LIST
3741: PUSH
3742: LD_OWVAR 67
3746: ARRAY
3747: ST_TO_ADDR
// SciLevel = [ 0 , 1 , 3 ] [ Difficulty ] ;
3748: LD_ADDR_EXP 4
3752: PUSH
3753: LD_INT 0
3755: PUSH
3756: LD_INT 1
3758: PUSH
3759: LD_INT 3
3761: PUSH
3762: EMPTY
3763: LIST
3764: LIST
3765: LIST
3766: PUSH
3767: LD_OWVAR 67
3771: ARRAY
3772: ST_TO_ADDR
// vc_chassis = 21 ;
3773: LD_ADDR_OWVAR 37
3777: PUSH
3778: LD_INT 21
3780: ST_TO_ADDR
// vc_engine = engine_combustion ;
3781: LD_ADDR_OWVAR 39
3785: PUSH
3786: LD_INT 1
3788: ST_TO_ADDR
// vc_control = control_manual ;
3789: LD_ADDR_OWVAR 38
3793: PUSH
3794: LD_INT 1
3796: ST_TO_ADDR
// vc_weapon = 44 ;
3797: LD_ADDR_OWVAR 40
3801: PUSH
3802: LD_INT 44
3804: ST_TO_ADDR
// uc_side = 3 ;
3805: LD_ADDR_OWVAR 20
3809: PUSH
3810: LD_INT 3
3812: ST_TO_ADDR
// A1 = CreateVehicle ;
3813: LD_ADDR_EXP 17
3817: PUSH
3818: CALL_OW 45
3822: ST_TO_ADDR
// A2 = CreateVehicle ;
3823: LD_ADDR_EXP 18
3827: PUSH
3828: CALL_OW 45
3832: ST_TO_ADDR
// hc_class = 3 ;
3833: LD_ADDR_OWVAR 28
3837: PUSH
3838: LD_INT 3
3840: ST_TO_ADDR
// hc_name =  ;
3841: LD_ADDR_OWVAR 26
3845: PUSH
3846: LD_STRING 
3848: ST_TO_ADDR
// uc_side = 3 ;
3849: LD_ADDR_OWVAR 20
3853: PUSH
3854: LD_INT 3
3856: ST_TO_ADDR
// uc_nation = 3 ;
3857: LD_ADDR_OWVAR 21
3861: PUSH
3862: LD_INT 3
3864: ST_TO_ADDR
// hc_gallery =  ;
3865: LD_ADDR_OWVAR 33
3869: PUSH
3870: LD_STRING 
3872: ST_TO_ADDR
// hc_sex = sex_male ;
3873: LD_ADDR_OWVAR 27
3877: PUSH
3878: LD_INT 1
3880: ST_TO_ADDR
// hc_skills = [ SoldLevel , EngLevel , MechLevel , SciLevel ] ;
3881: LD_ADDR_OWVAR 31
3885: PUSH
3886: LD_EXP 1
3890: PUSH
3891: LD_EXP 2
3895: PUSH
3896: LD_EXP 3
3900: PUSH
3901: LD_EXP 4
3905: PUSH
3906: EMPTY
3907: LIST
3908: LIST
3909: LIST
3910: LIST
3911: ST_TO_ADDR
// A3 = CreateHuman ;
3912: LD_ADDR_EXP 19
3916: PUSH
3917: CALL_OW 44
3921: ST_TO_ADDR
// A4 = CreateHuman ;
3922: LD_ADDR_EXP 20
3926: PUSH
3927: CALL_OW 44
3931: ST_TO_ADDR
// PlaceHumanInUnit ( A3 , A1 ) ;
3932: LD_EXP 19
3936: PPUSH
3937: LD_EXP 17
3941: PPUSH
3942: CALL_OW 52
// PlaceHumanInUnit ( A4 , A2 ) ;
3946: LD_EXP 20
3950: PPUSH
3951: LD_EXP 18
3955: PPUSH
3956: CALL_OW 52
// PlaceUnitArea ( A2 , zli , false ) ;
3960: LD_EXP 18
3964: PPUSH
3965: LD_INT 8
3967: PPUSH
3968: LD_INT 0
3970: PPUSH
3971: CALL_OW 49
// PlaceUnitArea ( A1 , zli , false ) ;
3975: LD_EXP 17
3979: PPUSH
3980: LD_INT 8
3982: PPUSH
3983: LD_INT 0
3985: PPUSH
3986: CALL_OW 49
// AddComAgressiveMove ( [ A1 , A2 ] , 212 , 193 ) ;
3990: LD_EXP 17
3994: PUSH
3995: LD_EXP 18
3999: PUSH
4000: EMPTY
4001: LIST
4002: LIST
4003: PPUSH
4004: LD_INT 212
4006: PPUSH
4007: LD_INT 193
4009: PPUSH
4010: CALL_OW 174
// end ; end_of_file
4014: LD_VAR 0 1
4018: RET
// export RussianAttack1 ; export function ATTACK1 ; var level , un , l ; begin
4019: LD_INT 0
4021: PPUSH
4022: PPUSH
4023: PPUSH
4024: PPUSH
// Level = [ 5 , 6 , 7 ] [ Difficulty ] ;
4025: LD_ADDR_VAR 0 2
4029: PUSH
4030: LD_INT 5
4032: PUSH
4033: LD_INT 6
4035: PUSH
4036: LD_INT 7
4038: PUSH
4039: EMPTY
4040: LIST
4041: LIST
4042: LIST
4043: PUSH
4044: LD_OWVAR 67
4048: ARRAY
4049: ST_TO_ADDR
// repeat begin uc_side = 6 ;
4050: LD_ADDR_OWVAR 20
4054: PUSH
4055: LD_INT 6
4057: ST_TO_ADDR
// uc_nation = 3 ;
4058: LD_ADDR_OWVAR 21
4062: PUSH
4063: LD_INT 3
4065: ST_TO_ADDR
// hc_gallery =  ;
4066: LD_ADDR_OWVAR 33
4070: PUSH
4071: LD_STRING 
4073: ST_TO_ADDR
// hc_name =  ;
4074: LD_ADDR_OWVAR 26
4078: PUSH
4079: LD_STRING 
4081: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4082: LD_ADDR_OWVAR 29
4086: PUSH
4087: LD_INT 9
4089: PPUSH
4090: LD_INT 11
4092: PPUSH
4093: CALL_OW 12
4097: PUSH
4098: LD_INT 10
4100: PPUSH
4101: LD_INT 12
4103: PPUSH
4104: CALL_OW 12
4108: PUSH
4109: EMPTY
4110: LIST
4111: LIST
4112: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) ] ;
4113: LD_ADDR_OWVAR 31
4117: PUSH
4118: LD_VAR 0 2
4122: PUSH
4123: LD_INT 0
4125: PPUSH
4126: LD_INT 4
4128: PPUSH
4129: CALL_OW 12
4133: PUSH
4134: LD_INT 0
4136: PPUSH
4137: LD_INT 4
4139: PPUSH
4140: CALL_OW 12
4144: PUSH
4145: LD_INT 0
4147: PPUSH
4148: LD_INT 4
4150: PPUSH
4151: CALL_OW 12
4155: PUSH
4156: EMPTY
4157: LIST
4158: LIST
4159: LIST
4160: LIST
4161: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4162: LD_ADDR_OWVAR 27
4166: PUSH
4167: LD_INT 1
4169: PPUSH
4170: LD_INT 2
4172: PPUSH
4173: CALL_OW 12
4177: ST_TO_ADDR
// hc_class = 1 ;
4178: LD_ADDR_OWVAR 28
4182: PUSH
4183: LD_INT 1
4185: ST_TO_ADDR
// hc_importance = 10 ;
4186: LD_ADDR_OWVAR 32
4190: PUSH
4191: LD_INT 10
4193: ST_TO_ADDR
// un = CreateHuman ;
4194: LD_ADDR_VAR 0 3
4198: PUSH
4199: CALL_OW 44
4203: ST_TO_ADDR
// PlaceUnitArea ( un , zolnierze , false ) ;
4204: LD_VAR 0 3
4208: PPUSH
4209: LD_INT 12
4211: PPUSH
4212: LD_INT 0
4214: PPUSH
4215: CALL_OW 49
// RussianAttack1 = RussianAttack1 ^ un ;
4219: LD_ADDR_EXP 21
4223: PUSH
4224: LD_EXP 21
4228: PUSH
4229: LD_VAR 0 3
4233: ADD
4234: ST_TO_ADDR
// l = l + 1 ;
4235: LD_ADDR_VAR 0 4
4239: PUSH
4240: LD_VAR 0 4
4244: PUSH
4245: LD_INT 1
4247: PLUS
4248: ST_TO_ADDR
// end until l = 8 ;
4249: LD_VAR 0 4
4253: PUSH
4254: LD_INT 8
4256: EQUAL
4257: IFFALSE 4050
// MechLevel = [ 5 , 6 , 7 ] [ Difficulty ] ;
4259: LD_ADDR_EXP 3
4263: PUSH
4264: LD_INT 5
4266: PUSH
4267: LD_INT 6
4269: PUSH
4270: LD_INT 7
4272: PUSH
4273: EMPTY
4274: LIST
4275: LIST
4276: LIST
4277: PUSH
4278: LD_OWVAR 67
4282: ARRAY
4283: ST_TO_ADDR
// uc_side = 6 ;
4284: LD_ADDR_OWVAR 20
4288: PUSH
4289: LD_INT 6
4291: ST_TO_ADDR
// vc_chassis = 23 ;
4292: LD_ADDR_OWVAR 37
4296: PUSH
4297: LD_INT 23
4299: ST_TO_ADDR
// vc_engine = engine_combustion ;
4300: LD_ADDR_OWVAR 39
4304: PUSH
4305: LD_INT 1
4307: ST_TO_ADDR
// vc_control = control_manual ;
4308: LD_ADDR_OWVAR 38
4312: PUSH
4313: LD_INT 1
4315: ST_TO_ADDR
// vc_weapon = 44 ;
4316: LD_ADDR_OWVAR 40
4320: PUSH
4321: LD_INT 44
4323: ST_TO_ADDR
// t2 = CreateVehicle ;
4324: LD_ADDR_EXP 23
4328: PUSH
4329: CALL_OW 45
4333: ST_TO_ADDR
// t3 = CreateVehicle ;
4334: LD_ADDR_EXP 24
4338: PUSH
4339: CALL_OW 45
4343: ST_TO_ADDR
// hc_class = 3 ;
4344: LD_ADDR_OWVAR 28
4348: PUSH
4349: LD_INT 3
4351: ST_TO_ADDR
// hc_name =  ;
4352: LD_ADDR_OWVAR 26
4356: PUSH
4357: LD_STRING 
4359: ST_TO_ADDR
// uc_side = 6 ;
4360: LD_ADDR_OWVAR 20
4364: PUSH
4365: LD_INT 6
4367: ST_TO_ADDR
// hc_gallery =  ;
4368: LD_ADDR_OWVAR 33
4372: PUSH
4373: LD_STRING 
4375: ST_TO_ADDR
// hc_sex = sex_male ;
4376: LD_ADDR_OWVAR 27
4380: PUSH
4381: LD_INT 1
4383: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 0 , 4 ) , MechLevel , Rand ( 0 , 4 ) ] ;
4384: LD_ADDR_OWVAR 31
4388: PUSH
4389: LD_INT 0
4391: PPUSH
4392: LD_INT 4
4394: PPUSH
4395: CALL_OW 12
4399: PUSH
4400: LD_INT 0
4402: PPUSH
4403: LD_INT 4
4405: PPUSH
4406: CALL_OW 12
4410: PUSH
4411: LD_EXP 3
4415: PUSH
4416: LD_INT 0
4418: PPUSH
4419: LD_INT 4
4421: PPUSH
4422: CALL_OW 12
4426: PUSH
4427: EMPTY
4428: LIST
4429: LIST
4430: LIST
4431: LIST
4432: ST_TO_ADDR
// q2 = CreateHuman ;
4433: LD_ADDR_EXP 25
4437: PUSH
4438: CALL_OW 44
4442: ST_TO_ADDR
// q3 = CreateHuman ;
4443: LD_ADDR_EXP 26
4447: PUSH
4448: CALL_OW 44
4452: ST_TO_ADDR
// PlaceHumanInUnit ( q2 , t2 ) ;
4453: LD_EXP 25
4457: PPUSH
4458: LD_EXP 23
4462: PPUSH
4463: CALL_OW 52
// PlaceHumanInUnit ( q3 , t3 ) ;
4467: LD_EXP 26
4471: PPUSH
4472: LD_EXP 24
4476: PPUSH
4477: CALL_OW 52
// PlaceUnitArea ( t2 , zolnierze , false ) ;
4481: LD_EXP 23
4485: PPUSH
4486: LD_INT 12
4488: PPUSH
4489: LD_INT 0
4491: PPUSH
4492: CALL_OW 49
// PlaceUnitArea ( t3 , zolnierze , false ) ;
4496: LD_EXP 24
4500: PPUSH
4501: LD_INT 12
4503: PPUSH
4504: LD_INT 0
4506: PPUSH
4507: CALL_OW 49
// end ; end_of_file
4511: LD_VAR 0 1
4515: RET
// export function WOWOWO ; var i , atakujacy , broniacy ; begin
4516: LD_INT 0
4518: PPUSH
4519: PPUSH
4520: PPUSH
4521: PPUSH
// broniacy = FilterAllUnits ( [ f_side , 4 ] ) ;
4522: LD_ADDR_VAR 0 4
4526: PUSH
4527: LD_INT 22
4529: PUSH
4530: LD_INT 4
4532: PUSH
4533: EMPTY
4534: LIST
4535: LIST
4536: PPUSH
4537: CALL_OW 69
4541: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ f_side , 6 ] ) ;
4542: LD_ADDR_VAR 0 3
4546: PUSH
4547: LD_INT 22
4549: PUSH
4550: LD_INT 6
4552: PUSH
4553: EMPTY
4554: LIST
4555: LIST
4556: PPUSH
4557: CALL_OW 69
4561: ST_TO_ADDR
// for i in atakujacy do
4562: LD_ADDR_VAR 0 2
4566: PUSH
4567: LD_VAR 0 3
4571: PUSH
4572: FOR_IN
4573: IFFALSE 4601
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
4575: LD_VAR 0 2
4579: PPUSH
4580: LD_VAR 0 4
4584: PPUSH
4585: LD_VAR 0 2
4589: PPUSH
4590: CALL_OW 74
4594: PPUSH
4595: CALL_OW 115
// end ;
4599: GO 4572
4601: POP
4602: POP
// end ;
4603: LD_VAR 0 1
4607: RET
// every 0 0$2 do
4608: GO 4610
4610: DISABLE
// begin WOWOWO ;
4611: CALL 4516 0 0
// enable ;
4615: ENABLE
// end ; end_of_file
4616: END
// export RussianAttack2 , t2 , t3 , q2 , q3 ; export function ATTACK2 ; var level , un , l ; begin
4617: LD_INT 0
4619: PPUSH
4620: PPUSH
4621: PPUSH
4622: PPUSH
// Level = [ 5 , 6 , 7 ] [ Difficulty ] ;
4623: LD_ADDR_VAR 0 2
4627: PUSH
4628: LD_INT 5
4630: PUSH
4631: LD_INT 6
4633: PUSH
4634: LD_INT 7
4636: PUSH
4637: EMPTY
4638: LIST
4639: LIST
4640: LIST
4641: PUSH
4642: LD_OWVAR 67
4646: ARRAY
4647: ST_TO_ADDR
// repeat begin uc_side = 6 ;
4648: LD_ADDR_OWVAR 20
4652: PUSH
4653: LD_INT 6
4655: ST_TO_ADDR
// uc_nation = 3 ;
4656: LD_ADDR_OWVAR 21
4660: PUSH
4661: LD_INT 3
4663: ST_TO_ADDR
// hc_gallery =  ;
4664: LD_ADDR_OWVAR 33
4668: PUSH
4669: LD_STRING 
4671: ST_TO_ADDR
// hc_name =  ;
4672: LD_ADDR_OWVAR 26
4676: PUSH
4677: LD_STRING 
4679: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
4680: LD_ADDR_OWVAR 29
4684: PUSH
4685: LD_INT 9
4687: PPUSH
4688: LD_INT 11
4690: PPUSH
4691: CALL_OW 12
4695: PUSH
4696: LD_INT 10
4698: PPUSH
4699: LD_INT 12
4701: PPUSH
4702: CALL_OW 12
4706: PUSH
4707: EMPTY
4708: LIST
4709: LIST
4710: ST_TO_ADDR
// hc_skills = [ Level , Rand ( 0 , 1 ) , Rand ( 0 , 1 ) , Rand ( 0 , 1 ) ] ;
4711: LD_ADDR_OWVAR 31
4715: PUSH
4716: LD_VAR 0 2
4720: PUSH
4721: LD_INT 0
4723: PPUSH
4724: LD_INT 1
4726: PPUSH
4727: CALL_OW 12
4731: PUSH
4732: LD_INT 0
4734: PPUSH
4735: LD_INT 1
4737: PPUSH
4738: CALL_OW 12
4742: PUSH
4743: LD_INT 0
4745: PPUSH
4746: LD_INT 1
4748: PPUSH
4749: CALL_OW 12
4753: PUSH
4754: EMPTY
4755: LIST
4756: LIST
4757: LIST
4758: LIST
4759: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
4760: LD_ADDR_OWVAR 27
4764: PUSH
4765: LD_INT 1
4767: PPUSH
4768: LD_INT 2
4770: PPUSH
4771: CALL_OW 12
4775: ST_TO_ADDR
// hc_class = 1 ;
4776: LD_ADDR_OWVAR 28
4780: PUSH
4781: LD_INT 1
4783: ST_TO_ADDR
// hc_importance = 10 ;
4784: LD_ADDR_OWVAR 32
4788: PUSH
4789: LD_INT 10
4791: ST_TO_ADDR
// un = CreateHuman ;
4792: LD_ADDR_VAR 0 3
4796: PUSH
4797: CALL_OW 44
4801: ST_TO_ADDR
// PlaceUnitArea ( un , Area16 , false ) ;
4802: LD_VAR 0 3
4806: PPUSH
4807: LD_INT 10
4809: PPUSH
4810: LD_INT 0
4812: PPUSH
4813: CALL_OW 49
// RussianAttack2 = RussianAttack2 ^ un ;
4817: LD_ADDR_EXP 22
4821: PUSH
4822: LD_EXP 22
4826: PUSH
4827: LD_VAR 0 3
4831: ADD
4832: ST_TO_ADDR
// l = l + 1 ;
4833: LD_ADDR_VAR 0 4
4837: PUSH
4838: LD_VAR 0 4
4842: PUSH
4843: LD_INT 1
4845: PLUS
4846: ST_TO_ADDR
// end until l = 8 ;
4847: LD_VAR 0 4
4851: PUSH
4852: LD_INT 8
4854: EQUAL
4855: IFFALSE 4648
// SoldLevel = [ 1 , 2 , 3 ] [ Difficulty ] ;
4857: LD_ADDR_EXP 1
4861: PUSH
4862: LD_INT 1
4864: PUSH
4865: LD_INT 2
4867: PUSH
4868: LD_INT 3
4870: PUSH
4871: EMPTY
4872: LIST
4873: LIST
4874: LIST
4875: PUSH
4876: LD_OWVAR 67
4880: ARRAY
4881: ST_TO_ADDR
// EngLevel = [ 1 , 2 , 4 ] [ Difficulty ] ;
4882: LD_ADDR_EXP 2
4886: PUSH
4887: LD_INT 1
4889: PUSH
4890: LD_INT 2
4892: PUSH
4893: LD_INT 4
4895: PUSH
4896: EMPTY
4897: LIST
4898: LIST
4899: LIST
4900: PUSH
4901: LD_OWVAR 67
4905: ARRAY
4906: ST_TO_ADDR
// MechLevel = [ 5 , 6 , 7 ] [ Difficulty ] ;
4907: LD_ADDR_EXP 3
4911: PUSH
4912: LD_INT 5
4914: PUSH
4915: LD_INT 6
4917: PUSH
4918: LD_INT 7
4920: PUSH
4921: EMPTY
4922: LIST
4923: LIST
4924: LIST
4925: PUSH
4926: LD_OWVAR 67
4930: ARRAY
4931: ST_TO_ADDR
// SciLevel = [ 0 , 0 , 1 ] [ Difficulty ] ;
4932: LD_ADDR_EXP 4
4936: PUSH
4937: LD_INT 0
4939: PUSH
4940: LD_INT 0
4942: PUSH
4943: LD_INT 1
4945: PUSH
4946: EMPTY
4947: LIST
4948: LIST
4949: LIST
4950: PUSH
4951: LD_OWVAR 67
4955: ARRAY
4956: ST_TO_ADDR
// uc_side = 6 ;
4957: LD_ADDR_OWVAR 20
4961: PUSH
4962: LD_INT 6
4964: ST_TO_ADDR
// vc_chassis = 23 ;
4965: LD_ADDR_OWVAR 37
4969: PUSH
4970: LD_INT 23
4972: ST_TO_ADDR
// vc_engine = engine_combustion ;
4973: LD_ADDR_OWVAR 39
4977: PUSH
4978: LD_INT 1
4980: ST_TO_ADDR
// vc_control = control_manual ;
4981: LD_ADDR_OWVAR 38
4985: PUSH
4986: LD_INT 1
4988: ST_TO_ADDR
// vc_weapon = 44 ;
4989: LD_ADDR_OWVAR 40
4993: PUSH
4994: LD_INT 44
4996: ST_TO_ADDR
// t2 = CreateVehicle ;
4997: LD_ADDR_EXP 23
5001: PUSH
5002: CALL_OW 45
5006: ST_TO_ADDR
// t3 = CreateVehicle ;
5007: LD_ADDR_EXP 24
5011: PUSH
5012: CALL_OW 45
5016: ST_TO_ADDR
// hc_class = 3 ;
5017: LD_ADDR_OWVAR 28
5021: PUSH
5022: LD_INT 3
5024: ST_TO_ADDR
// hc_name =  ;
5025: LD_ADDR_OWVAR 26
5029: PUSH
5030: LD_STRING 
5032: ST_TO_ADDR
// uc_side = 6 ;
5033: LD_ADDR_OWVAR 20
5037: PUSH
5038: LD_INT 6
5040: ST_TO_ADDR
// hc_gallery =  ;
5041: LD_ADDR_OWVAR 33
5045: PUSH
5046: LD_STRING 
5048: ST_TO_ADDR
// hc_sex = sex_male ;
5049: LD_ADDR_OWVAR 27
5053: PUSH
5054: LD_INT 1
5056: ST_TO_ADDR
// hc_skills = [ SoldLevel , EngLevel , MechLevel , SciLevel ] ;
5057: LD_ADDR_OWVAR 31
5061: PUSH
5062: LD_EXP 1
5066: PUSH
5067: LD_EXP 2
5071: PUSH
5072: LD_EXP 3
5076: PUSH
5077: LD_EXP 4
5081: PUSH
5082: EMPTY
5083: LIST
5084: LIST
5085: LIST
5086: LIST
5087: ST_TO_ADDR
// q2 = CreateHuman ;
5088: LD_ADDR_EXP 25
5092: PUSH
5093: CALL_OW 44
5097: ST_TO_ADDR
// q3 = CreateHuman ;
5098: LD_ADDR_EXP 26
5102: PUSH
5103: CALL_OW 44
5107: ST_TO_ADDR
// PlaceHumanInUnit ( q2 , t2 ) ;
5108: LD_EXP 25
5112: PPUSH
5113: LD_EXP 23
5117: PPUSH
5118: CALL_OW 52
// PlaceHumanInUnit ( q3 , t3 ) ;
5122: LD_EXP 26
5126: PPUSH
5127: LD_EXP 24
5131: PPUSH
5132: CALL_OW 52
// PlaceUnitArea ( t2 , Area16 , false ) ;
5136: LD_EXP 23
5140: PPUSH
5141: LD_INT 10
5143: PPUSH
5144: LD_INT 0
5146: PPUSH
5147: CALL_OW 49
// PlaceUnitArea ( t3 , Area16 , false ) ;
5151: LD_EXP 24
5155: PPUSH
5156: LD_INT 10
5158: PPUSH
5159: LD_INT 0
5161: PPUSH
5162: CALL_OW 49
// end ; end_of_file
5166: LD_VAR 0 1
5170: RET
// export POM1 , POm2 , POM3 ; export function POMOC ; begin
5171: LD_INT 0
5173: PPUSH
// uc_side = 1 ;
5174: LD_ADDR_OWVAR 20
5178: PUSH
5179: LD_INT 1
5181: ST_TO_ADDR
// uc_nation = 1 ;
5182: LD_ADDR_OWVAR 21
5186: PUSH
5187: LD_INT 1
5189: ST_TO_ADDR
// hc_gallery =  ;
5190: LD_ADDR_OWVAR 33
5194: PUSH
5195: LD_STRING 
5197: ST_TO_ADDR
// hc_name =  ;
5198: LD_ADDR_OWVAR 26
5202: PUSH
5203: LD_STRING 
5205: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
5206: LD_ADDR_OWVAR 29
5210: PUSH
5211: LD_INT 9
5213: PPUSH
5214: LD_INT 11
5216: PPUSH
5217: CALL_OW 12
5221: PUSH
5222: LD_INT 10
5224: PPUSH
5225: LD_INT 12
5227: PPUSH
5228: CALL_OW 12
5232: PUSH
5233: EMPTY
5234: LIST
5235: LIST
5236: ST_TO_ADDR
// hc_skills = [ 3 , Rand ( 0 , 1 ) , Rand ( 0 , 1 ) , Rand ( 0 , 1 ) ] ;
5237: LD_ADDR_OWVAR 31
5241: PUSH
5242: LD_INT 3
5244: PUSH
5245: LD_INT 0
5247: PPUSH
5248: LD_INT 1
5250: PPUSH
5251: CALL_OW 12
5255: PUSH
5256: LD_INT 0
5258: PPUSH
5259: LD_INT 1
5261: PPUSH
5262: CALL_OW 12
5266: PUSH
5267: LD_INT 0
5269: PPUSH
5270: LD_INT 1
5272: PPUSH
5273: CALL_OW 12
5277: PUSH
5278: EMPTY
5279: LIST
5280: LIST
5281: LIST
5282: LIST
5283: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
5284: LD_ADDR_OWVAR 27
5288: PUSH
5289: LD_INT 1
5291: PPUSH
5292: LD_INT 2
5294: PPUSH
5295: CALL_OW 12
5299: ST_TO_ADDR
// hc_class = 1 ;
5300: LD_ADDR_OWVAR 28
5304: PUSH
5305: LD_INT 1
5307: ST_TO_ADDR
// hc_importance = 10 ;
5308: LD_ADDR_OWVAR 32
5312: PUSH
5313: LD_INT 10
5315: ST_TO_ADDR
// POM1 = CreateHuman ;
5316: LD_ADDR_EXP 27
5320: PUSH
5321: CALL_OW 44
5325: ST_TO_ADDR
// hc_skills = [ 4 , Rand ( 0 , 2 ) , Rand ( 0 , 4 ) , Rand ( 0 , 1 ) ] ;
5326: LD_ADDR_OWVAR 31
5330: PUSH
5331: LD_INT 4
5333: PUSH
5334: LD_INT 0
5336: PPUSH
5337: LD_INT 2
5339: PPUSH
5340: CALL_OW 12
5344: PUSH
5345: LD_INT 0
5347: PPUSH
5348: LD_INT 4
5350: PPUSH
5351: CALL_OW 12
5355: PUSH
5356: LD_INT 0
5358: PPUSH
5359: LD_INT 1
5361: PPUSH
5362: CALL_OW 12
5366: PUSH
5367: EMPTY
5368: LIST
5369: LIST
5370: LIST
5371: LIST
5372: ST_TO_ADDR
// POM2 = CreateHuman ;
5373: LD_ADDR_EXP 28
5377: PUSH
5378: CALL_OW 44
5382: ST_TO_ADDR
// PlaceUnitArea ( POM1 , Area16 , false ) ;
5383: LD_EXP 27
5387: PPUSH
5388: LD_INT 10
5390: PPUSH
5391: LD_INT 0
5393: PPUSH
5394: CALL_OW 49
// PlaceUnitArea ( POM2 , Area16 , false ) ;
5398: LD_EXP 28
5402: PPUSH
5403: LD_INT 10
5405: PPUSH
5406: LD_INT 0
5408: PPUSH
5409: CALL_OW 49
// uc_nation = 1 ;
5413: LD_ADDR_OWVAR 21
5417: PUSH
5418: LD_INT 1
5420: ST_TO_ADDR
// hc_class = 4 ;
5421: LD_ADDR_OWVAR 28
5425: PUSH
5426: LD_INT 4
5428: ST_TO_ADDR
// hc_name =  ;
5429: LD_ADDR_OWVAR 26
5433: PUSH
5434: LD_STRING 
5436: ST_TO_ADDR
// uc_side = 1 ;
5437: LD_ADDR_OWVAR 20
5441: PUSH
5442: LD_INT 1
5444: ST_TO_ADDR
// hc_gallery =  ;
5445: LD_ADDR_OWVAR 33
5449: PUSH
5450: LD_STRING 
5452: ST_TO_ADDR
// hc_sex = sex_male ;
5453: LD_ADDR_OWVAR 27
5457: PUSH
5458: LD_INT 1
5460: ST_TO_ADDR
// hc_skills = [ 0 , Rand ( 1 , 3 ) , Rand ( 1 , 3 ) , 5 ] ;
5461: LD_ADDR_OWVAR 31
5465: PUSH
5466: LD_INT 0
5468: PUSH
5469: LD_INT 1
5471: PPUSH
5472: LD_INT 3
5474: PPUSH
5475: CALL_OW 12
5479: PUSH
5480: LD_INT 1
5482: PPUSH
5483: LD_INT 3
5485: PPUSH
5486: CALL_OW 12
5490: PUSH
5491: LD_INT 5
5493: PUSH
5494: EMPTY
5495: LIST
5496: LIST
5497: LIST
5498: LIST
5499: ST_TO_ADDR
// POM3 = CreateHuman ;
5500: LD_ADDR_EXP 29
5504: PUSH
5505: CALL_OW 44
5509: ST_TO_ADDR
// PlaceUnitArea ( POM3 , Area16 , false ) ;
5510: LD_EXP 29
5514: PPUSH
5515: LD_INT 10
5517: PPUSH
5518: LD_INT 0
5520: PPUSH
5521: CALL_OW 49
// AddComMoveXY ( [ POM1 , POM2 , POM3 ] , 97 , 21 ) ;
5525: LD_EXP 27
5529: PUSH
5530: LD_EXP 28
5534: PUSH
5535: LD_EXP 29
5539: PUSH
5540: EMPTY
5541: LIST
5542: LIST
5543: LIST
5544: PPUSH
5545: LD_INT 97
5547: PPUSH
5548: LD_INT 21
5550: PPUSH
5551: CALL_OW 171
// end ; end_of_file
5555: LD_VAR 0 1
5559: RET
// every 0 0$01 trigger IsDead ( Nefarem ) do
5560: LD_EXP 6
5564: PPUSH
5565: CALL_OW 301
5569: IFFALSE 5581
5571: GO 5573
5573: DISABLE
// begin YouLost ( ded1 ) ;
5574: LD_STRING ded1
5576: PPUSH
5577: CALL_OW 104
// end ;
5581: END
// every 0 0$01 trigger IsDead ( DOC ) do
5582: LD_EXP 8
5586: PPUSH
5587: CALL_OW 301
5591: IFFALSE 5603
5593: GO 5595
5595: DISABLE
// begin YouLost ( ded2 ) ;
5596: LD_STRING ded2
5598: PPUSH
5599: CALL_OW 104
// end ; end_of_file
5603: END
// export function Medale ; begin
5604: LD_INT 0
5606: PPUSH
// if FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] ] ) >= 15 then
5607: LD_INT 22
5609: PUSH
5610: LD_INT 4
5612: PUSH
5613: EMPTY
5614: LIST
5615: LIST
5616: PUSH
5617: LD_INT 21
5619: PUSH
5620: LD_INT 1
5622: PUSH
5623: EMPTY
5624: LIST
5625: LIST
5626: PUSH
5627: EMPTY
5628: LIST
5629: LIST
5630: PPUSH
5631: CALL_OW 69
5635: PUSH
5636: LD_INT 15
5638: GREATEREQUAL
5639: IFFALSE 5653
// begin AddMedal ( med2 , 1 ) ;
5641: LD_STRING med2
5643: PPUSH
5644: LD_INT 1
5646: PPUSH
5647: CALL_OW 101
// end else
5651: GO 5664
// begin AddMedal ( med2 , - 1 ) ;
5653: LD_STRING med2
5655: PPUSH
5656: LD_INT 1
5658: NEG
5659: PPUSH
5660: CALL_OW 101
// end ; if GetTech ( tech_Opto2 , 4 ) = state_researched and GetTech ( tech_Tech2 , 4 ) = State_researched and GetTech ( tech_Weap2 , 4 ) = State_researched then
5664: LD_INT 61
5666: PPUSH
5667: LD_INT 4
5669: PPUSH
5670: CALL_OW 321
5674: PUSH
5675: LD_INT 2
5677: EQUAL
5678: PUSH
5679: LD_INT 49
5681: PPUSH
5682: LD_INT 4
5684: PPUSH
5685: CALL_OW 321
5689: PUSH
5690: LD_INT 2
5692: EQUAL
5693: AND
5694: PUSH
5695: LD_INT 52
5697: PPUSH
5698: LD_INT 4
5700: PPUSH
5701: CALL_OW 321
5705: PUSH
5706: LD_INT 2
5708: EQUAL
5709: AND
5710: IFFALSE 5724
// begin AddMedal ( med3 , 1 ) ;
5712: LD_STRING med3
5714: PPUSH
5715: LD_INT 1
5717: PPUSH
5718: CALL_OW 101
// end else
5722: GO 5735
// begin AddMedal ( med3 , - 1 ) ;
5724: LD_STRING med3
5726: PPUSH
5727: LD_INT 1
5729: NEG
5730: PPUSH
5731: CALL_OW 101
// end ; if GetTech ( tech_Opto2 , 4 ) = state_researched and GetTech ( tech_Radar , 4 ) = state_researched then
5735: LD_INT 61
5737: PPUSH
5738: LD_INT 4
5740: PPUSH
5741: CALL_OW 321
5745: PUSH
5746: LD_INT 2
5748: EQUAL
5749: PUSH
5750: LD_INT 6
5752: PPUSH
5753: LD_INT 4
5755: PPUSH
5756: CALL_OW 321
5760: PUSH
5761: LD_INT 2
5763: EQUAL
5764: AND
5765: IFFALSE 5779
// begin AddMedal ( med1 , 1 ) ;
5767: LD_STRING med1
5769: PPUSH
5770: LD_INT 1
5772: PPUSH
5773: CALL_OW 101
// end else
5777: GO 5790
// begin AddMedal ( med1 , - 1 ) ;
5779: LD_STRING med1
5781: PPUSH
5782: LD_INT 1
5784: NEG
5785: PPUSH
5786: CALL_OW 101
// end ; givemedals ( MAIN ) ;
5790: LD_STRING MAIN
5792: PPUSH
5793: CALL_OW 102
// end ; end_of_file
5797: LD_VAR 0 1
5801: RET
// export function WOWOWOWO ; var i , atakujacy , broniacy ; begin
5802: LD_INT 0
5804: PPUSH
5805: PPUSH
5806: PPUSH
5807: PPUSH
// broniacy = FilterAllUnits ( [ f_side , 1 ] ) ;
5808: LD_ADDR_VAR 0 4
5812: PUSH
5813: LD_INT 22
5815: PUSH
5816: LD_INT 1
5818: PUSH
5819: EMPTY
5820: LIST
5821: LIST
5822: PPUSH
5823: CALL_OW 69
5827: ST_TO_ADDR
// atakujacy = FilterAllUnits ( [ f_side , 3 ] ) ;
5828: LD_ADDR_VAR 0 3
5832: PUSH
5833: LD_INT 22
5835: PUSH
5836: LD_INT 3
5838: PUSH
5839: EMPTY
5840: LIST
5841: LIST
5842: PPUSH
5843: CALL_OW 69
5847: ST_TO_ADDR
// for i in atakujacy do
5848: LD_ADDR_VAR 0 2
5852: PUSH
5853: LD_VAR 0 3
5857: PUSH
5858: FOR_IN
5859: IFFALSE 5887
// begin ComAttackUnit ( i , NearestUnitToUnit ( broniacy , i ) ) ;
5861: LD_VAR 0 2
5865: PPUSH
5866: LD_VAR 0 4
5870: PPUSH
5871: LD_VAR 0 2
5875: PPUSH
5876: CALL_OW 74
5880: PPUSH
5881: CALL_OW 115
// end ;
5885: GO 5858
5887: POP
5888: POP
// end ;
5889: LD_VAR 0 1
5893: RET
// every 0 0$2 do
5894: GO 5896
5896: DISABLE
// begin WOWOWOWO ;
5897: CALL 5802 0 0
// enable ;
5901: ENABLE
// end ;
5902: END
